﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Threading;
using Volo.Abp.Domain.Repositories;

namespace mozhi.smarterp.Business.Purchases.Repositories
{
    public interface IPurchaseProductPriceRepository : IRepository<PurchaseProductPrice, Guid>
    {
        Task<List<PurchaseProductPrice>> GetPagedListAsync(string keyword, string code, string name, Guid? supplierId, Guid? currencyId, int skipCount, int maxResultCount, string sorting, bool includeDetails = false, CancellationToken cancellationToken = default(CancellationToken));

        Task<long> GetCountAsync(string keyword, string code, string name, Guid? supplierId, Guid? currencyId, Guid? excludeId, CancellationToken cancellationToken = default(CancellationToken));

        Task<List<PurchaseProductPrice>> GetListAsync(Guid? supplierId, Guid currencyId, bool includeTax, DateTime date, List<Guid> productIds, CancellationToken cancellationToken = default(CancellationToken));
    }
}
